<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::MultiscaleFeaturePersistence&lt; PointSource, PointFeature &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_multiscale_feature_persistence.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1_multiscale_feature_persistence-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::MultiscaleFeaturePersistence&lt; PointSource, PointFeature &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Generic class for extracting the persistent features from an input point cloud It can be given any <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a> estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales.  
 <a href="classpcl_1_1_multiscale_feature_persistence.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="multiscale__feature__persistence_8h_source.html">multiscale_feature_persistence.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::MultiscaleFeaturePersistence&lt; PointSource, PointFeature &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_multiscale_feature_persistence.png" usemap="#pcl::MultiscaleFeaturePersistence_3C_20PointSource_2C_20PointFeature_20_3E_map" alt=""/>
  <map id="pcl::MultiscaleFeaturePersistence_3C_20PointSource_2C_20PointFeature_20_3E_map" name="pcl::MultiscaleFeaturePersistence_3C_20PointSource_2C_20PointFeature_20_3E_map">
<area href="classpcl_1_1_p_c_l_base.html" alt="pcl::PCLBase&lt; PointSource &gt;" shape="rect" coords="0,0,376,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a925cc47f5ea0366e53c3cf8f000d3dfa"><td class="memItemLeft" align="right" valign="top"><a id="a925cc47f5ea0366e53c3cf8f000d3dfa"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a925cc47f5ea0366e53c3cf8f000d3dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af61797a1937a75772e2f2400cbf26e65"><td class="memItemLeft" align="right" valign="top"><a id="af61797a1937a75772e2f2400cbf26e65"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:af61797a1937a75772e2f2400cbf26e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e45d58445a8ae803d2d44a87ff87778"><td class="memItemLeft" align="right" valign="top"><a id="a4e45d58445a8ae803d2d44a87ff87778"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointFeature &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FeatureCloud</b></td></tr>
<tr class="separator:a4e45d58445a8ae803d2d44a87ff87778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44d67167d9fa53d8d2234d20db659f94"><td class="memItemLeft" align="right" valign="top"><a id="a44d67167d9fa53d8d2234d20db659f94"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointFeature &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>FeatureCloudPtr</b></td></tr>
<tr class="separator:a44d67167d9fa53d8d2234d20db659f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0caa0af69f533bce17ef56d0a140e92"><td class="memItemLeft" align="right" valign="top"><a id="ac0caa0af69f533bce17ef56d0a140e92"></a>
typedef <a class="el" href="classpcl_1_1_feature.html">pcl::Feature</a>&lt; PointSource, PointFeature &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>FeatureEstimatorPtr</b></td></tr>
<tr class="separator:ac0caa0af69f533bce17ef56d0a140e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6129e2335e7ca284eaba0f9915232e0a"><td class="memItemLeft" align="right" valign="top"><a id="a6129e2335e7ca284eaba0f9915232e0a"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_representation.html">pcl::PointRepresentation</a>&lt; PointFeature &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FeatureRepresentationConstPtr</b></td></tr>
<tr class="separator:a6129e2335e7ca284eaba0f9915232e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointSource &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointSource &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:acad907a232d8f53922d837685a7a1d88"><td class="memItemLeft" align="right" valign="top"><a id="acad907a232d8f53922d837685a7a1d88"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#acad907a232d8f53922d837685a7a1d88">MultiscaleFeaturePersistence</a> ()</td></tr>
<tr class="memdesc:acad907a232d8f53922d837685a7a1d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor <br /></td></tr>
<tr class="separator:acad907a232d8f53922d837685a7a1d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab28f54af5e815535bc41d6e58c5a94f4"><td class="memItemLeft" align="right" valign="top"><a id="ab28f54af5e815535bc41d6e58c5a94f4"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#ab28f54af5e815535bc41d6e58c5a94f4">~MultiscaleFeaturePersistence</a> ()</td></tr>
<tr class="memdesc:ab28f54af5e815535bc41d6e58c5a94f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor <br /></td></tr>
<tr class="separator:ab28f54af5e815535bc41d6e58c5a94f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6dd84394b9f1c382e026843f48ff75b"><td class="memItemLeft" align="right" valign="top"><a id="aa6dd84394b9f1c382e026843f48ff75b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#aa6dd84394b9f1c382e026843f48ff75b">computeFeaturesAtAllScales</a> ()</td></tr>
<tr class="memdesc:aa6dd84394b9f1c382e026843f48ff75b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method that calls computeFeatureAtScale () for each scale parameter <br /></td></tr>
<tr class="separator:aa6dd84394b9f1c382e026843f48ff75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd1ef078eadb07a1c91276957f197865"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#abd1ef078eadb07a1c91276957f197865">determinePersistentFeatures</a> (<a class="el" href="classpcl_1_1_point_cloud.html">FeatureCloud</a> &amp;output_features, boost::shared_ptr&lt; std::vector&lt; int &gt; &gt; &amp;output_indices)</td></tr>
<tr class="memdesc:abd1ef078eadb07a1c91276957f197865"><td class="mdescLeft">&#160;</td><td class="mdescRight">Central function that computes the persistent features  <a href="classpcl_1_1_multiscale_feature_persistence.html#abd1ef078eadb07a1c91276957f197865">更多...</a><br /></td></tr>
<tr class="separator:abd1ef078eadb07a1c91276957f197865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fb4b0b29389719ebdf3363e6c3067d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a8fb4b0b29389719ebdf3363e6c3067d7">setScalesVector</a> (std::vector&lt; float &gt; &amp;scale_values)</td></tr>
<tr class="memdesc:a8fb4b0b29389719ebdf3363e6c3067d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for setting the scale parameters for the algorithm  <a href="classpcl_1_1_multiscale_feature_persistence.html#a8fb4b0b29389719ebdf3363e6c3067d7">更多...</a><br /></td></tr>
<tr class="separator:a8fb4b0b29389719ebdf3363e6c3067d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ca6498bd8734bd1a36d9a4b3adacc92"><td class="memItemLeft" align="right" valign="top"><a id="a0ca6498bd8734bd1a36d9a4b3adacc92"></a>
std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a0ca6498bd8734bd1a36d9a4b3adacc92">getScalesVector</a> ()</td></tr>
<tr class="memdesc:a0ca6498bd8734bd1a36d9a4b3adacc92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for getting the scale parameters vector <br /></td></tr>
<tr class="separator:a0ca6498bd8734bd1a36d9a4b3adacc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18007684230068263a72634de5b14578"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a18007684230068263a72634de5b14578">setFeatureEstimator</a> (FeatureEstimatorPtr feature_estimator)</td></tr>
<tr class="memdesc:a18007684230068263a72634de5b14578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setter method for the feature estimator  <a href="classpcl_1_1_multiscale_feature_persistence.html#a18007684230068263a72634de5b14578">更多...</a><br /></td></tr>
<tr class="separator:a18007684230068263a72634de5b14578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a538fb17e9871ba4c61745aec350c32df"><td class="memItemLeft" align="right" valign="top"><a id="a538fb17e9871ba4c61745aec350c32df"></a>
FeatureEstimatorPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a538fb17e9871ba4c61745aec350c32df">getFeatureEstimator</a> ()</td></tr>
<tr class="memdesc:a538fb17e9871ba4c61745aec350c32df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter method for the feature estimator <br /></td></tr>
<tr class="separator:a538fb17e9871ba4c61745aec350c32df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdd02a2d62fd46cb88be143d7f99a447"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#abdd02a2d62fd46cb88be143d7f99a447">setPointRepresentation</a> (const FeatureRepresentationConstPtr &amp;feature_representation)</td></tr>
<tr class="memdesc:abdd02a2d62fd46cb88be143d7f99a447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the feature representation to use to convert features to k-D vectors.  <a href="classpcl_1_1_multiscale_feature_persistence.html#abdd02a2d62fd46cb88be143d7f99a447">更多...</a><br /></td></tr>
<tr class="separator:abdd02a2d62fd46cb88be143d7f99a447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdcd18345933acf55ba85d7bfd2fcf18"><td class="memItemLeft" align="right" valign="top"><a id="afdcd18345933acf55ba85d7bfd2fcf18"></a>
FeatureRepresentationConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#afdcd18345933acf55ba85d7bfd2fcf18">getPointRepresentation</a> ()</td></tr>
<tr class="memdesc:afdcd18345933acf55ba85d7bfd2fcf18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the feature representation used when converting features into k-D vectors. <br /></td></tr>
<tr class="separator:afdcd18345933acf55ba85d7bfd2fcf18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f4d13f11010d2d880c29ebf8e362342"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a5f4d13f11010d2d880c29ebf8e362342">setAlpha</a> (float alpha)</td></tr>
<tr class="memdesc:a5f4d13f11010d2d880c29ebf8e362342"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the alpha parameter  <a href="classpcl_1_1_multiscale_feature_persistence.html#a5f4d13f11010d2d880c29ebf8e362342">更多...</a><br /></td></tr>
<tr class="separator:a5f4d13f11010d2d880c29ebf8e362342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd04ca7424554af79ab6c9c3b7f4c108"><td class="memItemLeft" align="right" valign="top"><a id="abd04ca7424554af79ab6c9c3b7f4c108"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#abd04ca7424554af79ab6c9c3b7f4c108">getAlpha</a> ()</td></tr>
<tr class="memdesc:abd04ca7424554af79ab6c9c3b7f4c108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the alpha parameter <br /></td></tr>
<tr class="separator:abd04ca7424554af79ab6c9c3b7f4c108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a5b892e4253a4ef49350d98d7f05ef3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a6a5b892e4253a4ef49350d98d7f05ef3">setDistanceMetric</a> (<a class="el" href="group__common.html#ga9d37f00989a9de11b48deb263649463c">NormType</a> distance_metric)</td></tr>
<tr class="memdesc:a6a5b892e4253a4ef49350d98d7f05ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for setting the distance metric that will be used for computing the difference between feature vectors  <a href="classpcl_1_1_multiscale_feature_persistence.html#a6a5b892e4253a4ef49350d98d7f05ef3">更多...</a><br /></td></tr>
<tr class="separator:a6a5b892e4253a4ef49350d98d7f05ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab661523592facfa58cee5b77b5b08ed1"><td class="memItemLeft" align="right" valign="top"><a id="ab661523592facfa58cee5b77b5b08ed1"></a>
<a class="el" href="group__common.html#ga9d37f00989a9de11b48deb263649463c">NormType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#ab661523592facfa58cee5b77b5b08ed1">getDistanceMetric</a> ()</td></tr>
<tr class="memdesc:ab661523592facfa58cee5b77b5b08ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the distance metric that is currently used to calculate the difference between feature vectors <br /></td></tr>
<tr class="separator:ab661523592facfa58cee5b77b5b08ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointSource &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">更多...</a><br /></td></tr>
<tr class="separator:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">更多...</a><br /></td></tr>
<tr class="separator:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">更多...</a><br /></td></tr>
<tr class="separator:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">更多...</a><br /></td></tr>
<tr class="separator:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">更多...</a><br /></td></tr>
<tr class="separator:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const PointSource &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override PointCloud operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:afd373ece26c8493c53e63d51e1370d07"><td class="memItemLeft" align="right" valign="top"><a id="afd373ece26c8493c53e63d51e1370d07"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#afd373ece26c8493c53e63d51e1370d07">initCompute</a> ()</td></tr>
<tr class="memdesc:afd373ece26c8493c53e63d51e1370d07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if all the necessary input was given and the computations can successfully start <br /></td></tr>
<tr class="separator:afd373ece26c8493c53e63d51e1370d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af48aef272809c0da073599bc01482ad0"><td class="memItemLeft" align="right" valign="top"><a id="af48aef272809c0da073599bc01482ad0"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#af48aef272809c0da073599bc01482ad0">computeFeatureAtScale</a> (float &amp;scale, FeatureCloudPtr &amp;features)</td></tr>
<tr class="memdesc:af48aef272809c0da073599bc01482ad0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to compute the features for the point cloud at the given scale <br /></td></tr>
<tr class="separator:af48aef272809c0da073599bc01482ad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4dc2cea56de8585b0a316c33ba33944"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#ad4dc2cea56de8585b0a316c33ba33944">distanceBetweenFeatures</a> (const std::vector&lt; float &gt; &amp;a, const std::vector&lt; float &gt; &amp;b)</td></tr>
<tr class="memdesc:ad4dc2cea56de8585b0a316c33ba33944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that calculates the scalar difference between two features  <a href="classpcl_1_1_multiscale_feature_persistence.html#ad4dc2cea56de8585b0a316c33ba33944">更多...</a><br /></td></tr>
<tr class="separator:ad4dc2cea56de8585b0a316c33ba33944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84c189fe2f5dbb7e11d33888884b46bd"><td class="memItemLeft" align="right" valign="top"><a id="a84c189fe2f5dbb7e11d33888884b46bd"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a84c189fe2f5dbb7e11d33888884b46bd">calculateMeanFeature</a> ()</td></tr>
<tr class="memdesc:a84c189fe2f5dbb7e11d33888884b46bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method that averages all the features at all scales in order to obtain the global mean feature; this value is stored in the mean_feature field <br /></td></tr>
<tr class="separator:a84c189fe2f5dbb7e11d33888884b46bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8860a2d40e66834ee8f259ad26c0b5"><td class="memItemLeft" align="right" valign="top"><a id="a4e8860a2d40e66834ee8f259ad26c0b5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a4e8860a2d40e66834ee8f259ad26c0b5">extractUniqueFeatures</a> ()</td></tr>
<tr class="memdesc:a4e8860a2d40e66834ee8f259ad26c0b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the so-called 'unique' features from the cloud of features at each level. These features are the ones that fall outside the standard deviation * alpha_ <br /></td></tr>
<tr class="separator:a4e8860a2d40e66834ee8f259ad26c0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a700a644c3268ec9ae619584134c43dcf"><td class="memItemLeft" align="right" valign="top"><a id="a700a644c3268ec9ae619584134c43dcf"></a>
std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a700a644c3268ec9ae619584134c43dcf">scale_values_</a></td></tr>
<tr class="memdesc:a700a644c3268ec9ae619584134c43dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The general parameter for determining each scale level <br /></td></tr>
<tr class="separator:a700a644c3268ec9ae619584134c43dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bf873dbce5167c97cf33ea5aad3d2eb"><td class="memItemLeft" align="right" valign="top"><a id="a5bf873dbce5167c97cf33ea5aad3d2eb"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a5bf873dbce5167c97cf33ea5aad3d2eb">alpha_</a></td></tr>
<tr class="memdesc:a5bf873dbce5167c97cf33ea5aad3d2eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameter that determines if a feature is to be considered unique or not <br /></td></tr>
<tr class="separator:a5bf873dbce5167c97cf33ea5aad3d2eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9871addda0d0b88512e5df0b2f5bab8d"><td class="memItemLeft" align="right" valign="top"><a id="a9871addda0d0b88512e5df0b2f5bab8d"></a>
<a class="el" href="group__common.html#ga9d37f00989a9de11b48deb263649463c">NormType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a9871addda0d0b88512e5df0b2f5bab8d">distance_metric_</a></td></tr>
<tr class="memdesc:a9871addda0d0b88512e5df0b2f5bab8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameter that determines which distance metric is to be usedto calculate the difference between feature vectors <br /></td></tr>
<tr class="separator:a9871addda0d0b88512e5df0b2f5bab8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c0dfc200321784727cf0f92a237eb26"><td class="memItemLeft" align="right" valign="top"><a id="a7c0dfc200321784727cf0f92a237eb26"></a>
FeatureEstimatorPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">feature_estimator_</a></td></tr>
<tr class="memdesc:a7c0dfc200321784727cf0f92a237eb26"><td class="mdescLeft">&#160;</td><td class="mdescRight">the feature estimator that will be used to determine the feature set at each scale level <br /></td></tr>
<tr class="separator:a7c0dfc200321784727cf0f92a237eb26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3937a22fd1255ca872585739a15af46e"><td class="memItemLeft" align="right" valign="top"><a id="a3937a22fd1255ca872585739a15af46e"></a>
std::vector&lt; FeatureCloudPtr &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>features_at_scale_</b></td></tr>
<tr class="separator:a3937a22fd1255ca872585739a15af46e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41497531744f547e7d358257676dc700"><td class="memItemLeft" align="right" valign="top"><a id="a41497531744f547e7d358257676dc700"></a>
std::vector&lt; std::vector&lt; std::vector&lt; float &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>features_at_scale_vectorized_</b></td></tr>
<tr class="separator:a41497531744f547e7d358257676dc700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5e8bd0e6052d13056a82981d928502e"><td class="memItemLeft" align="right" valign="top"><a id="af5e8bd0e6052d13056a82981d928502e"></a>
std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mean_feature_</b></td></tr>
<tr class="separator:af5e8bd0e6052d13056a82981d928502e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7131e13fb1200658fa5ec57aa6a4bef4"><td class="memItemLeft" align="right" valign="top"><a id="a7131e13fb1200658fa5ec57aa6a4bef4"></a>
FeatureRepresentationConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>feature_representation_</b></td></tr>
<tr class="separator:a7131e13fb1200658fa5ec57aa6a4bef4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650770982624fb806872a9e13b1b04d5"><td class="memItemLeft" align="right" valign="top"><a id="a650770982624fb806872a9e13b1b04d5"></a>
std::vector&lt; std::list&lt; size_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html#a650770982624fb806872a9e13b1b04d5">unique_features_indices_</a></td></tr>
<tr class="memdesc:a650770982624fb806872a9e13b1b04d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Two structures in which to hold the results of the unique feature extraction process. They are superfluous with respect to each other, but improve the time performance of the algorithm <br /></td></tr>
<tr class="separator:a650770982624fb806872a9e13b1b04d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7bc19c521ab9fe38b3df237a265a2e"><td class="memItemLeft" align="right" valign="top"><a id="a2a7bc19c521ab9fe38b3df237a265a2e"></a>
std::vector&lt; std::vector&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>unique_features_table_</b></td></tr>
<tr class="separator:a2a7bc19c521ab9fe38b3df237a265a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointSource &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointSource &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointSource, typename PointFeature&gt;<br />
class pcl::MultiscaleFeaturePersistence&lt; PointSource, PointFeature &gt;</h3>

<p>Generic class for extracting the persistent features from an input point cloud It can be given any <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a> estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales. </p>
<p>Please refer to the following publication for more details: Radu Bogdan Rusu, Zoltan Csaba Marton, Nico Blodow, and Michael Beetz Persistent Point <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a> Histograms for 3D Point Clouds Proceedings of the 10th International Conference on Intelligent Autonomous Systems (IAS-10) 2008, Baden-Baden, Germany</p>
<dl class="section author"><dt>作者</dt><dd>Alexandru-Eugen Ichim </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="abd1ef078eadb07a1c91276957f197865"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd1ef078eadb07a1c91276957f197865">&#9670;&nbsp;</a></span>determinePersistentFeatures()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::determinePersistentFeatures </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">FeatureCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>output_features</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::shared_ptr&lt; std::vector&lt; int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>output_indices</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Central function that computes the persistent features </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">output_features</td><td>a cloud containing the persistent features </td></tr>
    <tr><td class="paramname">output_indices</td><td>vector containing the indices of the points in the input cloud that have persistent features, under a one-to-one correspondence with the output_features cloud </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;{</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#afd373ece26c8493c53e63d51e1370d07">initCompute</a> ())</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  <span class="comment">// Compute the features for all scales with the given feature estimator</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  PCL_DEBUG (<span class="stringliteral">&quot;[pcl::MultiscaleFeaturePersistence::determinePersistentFeatures] Computing features ...\n&quot;</span>);</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#aa6dd84394b9f1c382e026843f48ff75b">computeFeaturesAtAllScales</a> ();</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  <span class="comment">// Compute mean feature</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  PCL_DEBUG (<span class="stringliteral">&quot;[pcl::MultiscaleFeaturePersistence::determinePersistentFeatures] Calculating mean feature ...\n&quot;</span>);</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a84c189fe2f5dbb7e11d33888884b46bd">calculateMeanFeature</a> ();</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <span class="comment">// Get the &#39;unique&#39; features at each scale</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  PCL_DEBUG (<span class="stringliteral">&quot;[pcl::MultiscaleFeaturePersistence::determinePersistentFeatures] Extracting unique features ...\n&quot;</span>);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;  <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a4e8860a2d40e66834ee8f259ad26c0b5">extractUniqueFeatures</a> ();</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;  PCL_DEBUG (<span class="stringliteral">&quot;[pcl::MultiscaleFeaturePersistence::determinePersistentFeatures] Determining persistent features between scales ...\n&quot;</span>);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  <span class="comment">// Determine persistent features between scales</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment">  // Method 1: a feature is considered persistent if it is &#39;unique&#39; in at least 2 different scales</span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment">  for (size_t scale_i = 0; scale_i &lt; features_at_scale_vectorized_.size () - 1; ++scale_i)</span></div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment">    for (std::list&lt;size_t&gt;::iterator feature_it = unique_features_indices_[scale_i].begin (); feature_it != unique_features_indices_[scale_i].end (); ++feature_it)</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">    {</span></div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">      if (unique_features_table_[scale_i][*feature_it] == true)</span></div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">      {</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment">        output_features.points.push_back (features_at_scale[scale_i]-&gt;points[*feature_it]);</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment">        output_indices-&gt;push_back (feature_estimator_-&gt;getIndices ()-&gt;at (*feature_it));</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">      }</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">    }</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <span class="comment">// Method 2: a feature is considered persistent if it is &#39;unique&#39; in all the scales</span></div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  <span class="keywordflow">for</span> (std::list&lt;size_t&gt;::iterator feature_it = <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a650770982624fb806872a9e13b1b04d5">unique_features_indices_</a>.front ().begin (); feature_it != <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a650770982624fb806872a9e13b1b04d5">unique_features_indices_</a>.front ().end (); ++feature_it)</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  {</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordtype">bool</span> present_in_all = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> scale_i = 0; scale_i &lt; features_at_scale_.size (); ++scale_i)</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;      present_in_all = present_in_all &amp;&amp; unique_features_table_[scale_i][*feature_it];</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordflow">if</span> (present_in_all)</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    {</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;      output_features.points.push_back (features_at_scale_.front ()-&gt;points[*feature_it]);</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;      output_indices-&gt;push_back (<a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">feature_estimator_</a>-&gt;getIndices ()-&gt;at (*feature_it));</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    }</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;  }</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  <span class="comment">// Consider that output cloud is unorganized</span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  output_features.header = <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">feature_estimator_</a>-&gt;getInputCloud ()-&gt;header;</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;  output_features.is_dense = <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">feature_estimator_</a>-&gt;getInputCloud ()-&gt;is_dense;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;  output_features.width = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span> (output_features.points.size ());</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;  output_features.height = 1;</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a4e8860a2d40e66834ee8f259ad26c0b5"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a4e8860a2d40e66834ee8f259ad26c0b5">pcl::MultiscaleFeaturePersistence::extractUniqueFeatures</a></div><div class="ttdeci">void extractUniqueFeatures()</div><div class="ttdoc">Selects the so-called 'unique' features from the cloud of features at each level. These features are ...</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.hpp:158</div></div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a650770982624fb806872a9e13b1b04d5"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a650770982624fb806872a9e13b1b04d5">pcl::MultiscaleFeaturePersistence::unique_features_indices_</a></div><div class="ttdeci">std::vector&lt; std::list&lt; size_t &gt; &gt; unique_features_indices_</div><div class="ttdoc">Two structures in which to hold the results of the unique feature extraction process....</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.h:200</div></div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a7c0dfc200321784727cf0f92a237eb26"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">pcl::MultiscaleFeaturePersistence::feature_estimator_</a></div><div class="ttdeci">FeatureEstimatorPtr feature_estimator_</div><div class="ttdoc">the feature estimator that will be used to determine the feature set at each scale level</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.h:190</div></div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a84c189fe2f5dbb7e11d33888884b46bd"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a84c189fe2f5dbb7e11d33888884b46bd">pcl::MultiscaleFeaturePersistence::calculateMeanFeature</a></div><div class="ttdeci">void calculateMeanFeature()</div><div class="ttdoc">Method that averages all the features at all scales in order to obtain the global mean feature; this ...</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.hpp:137</div></div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_aa6dd84394b9f1c382e026843f48ff75b"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#aa6dd84394b9f1c382e026843f48ff75b">pcl::MultiscaleFeaturePersistence::computeFeaturesAtAllScales</a></div><div class="ttdeci">void computeFeaturesAtAllScales()</div><div class="ttdoc">Method that calls computeFeatureAtScale () for each scale parameter</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.hpp:93</div></div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_afd373ece26c8493c53e63d51e1370d07"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#afd373ece26c8493c53e63d51e1370d07">pcl::MultiscaleFeaturePersistence::initCompute</a></div><div class="ttdeci">bool initCompute()</div><div class="ttdoc">Checks if all the necessary input was given and the computations can successfully start</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.hpp:67</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ad4dc2cea56de8585b0a316c33ba33944"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4dc2cea56de8585b0a316c33ba33944">&#9670;&nbsp;</a></span>distanceBetweenFeatures()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::distanceBetweenFeatures </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Function that calculates the scalar difference between two features </p>
<dl class="section return"><dt>返回</dt><dd>the difference as a floating point type </dd></dl>
<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;{</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="group__common.html#ga047d812778a099ab333c847342c4b6bf">pcl::selectNorm</a>&lt;std::vector&lt;float&gt; &gt; (a, b, <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (a.size ()), <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a9871addda0d0b88512e5df0b2f5bab8d">distance_metric_</a>));</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a9871addda0d0b88512e5df0b2f5bab8d"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a9871addda0d0b88512e5df0b2f5bab8d">pcl::MultiscaleFeaturePersistence::distance_metric_</a></div><div class="ttdeci">NormType distance_metric_</div><div class="ttdoc">Parameter that determines which distance metric is to be usedto calculate the difference between feat...</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.h:187</div></div>
<div class="ttc" id="agroup__common_html_ga047d812778a099ab333c847342c4b6bf"><div class="ttname"><a href="group__common.html#ga047d812778a099ab333c847342c4b6bf">pcl::selectNorm</a></div><div class="ttdeci">float selectNorm(FloatVectorT a, FloatVectorT b, int dim, NormType norm_type)</div><div class="ttdoc">Method that calculates any norm type available, based on the norm_type variable</div><div class="ttdef"><b>Definition:</b> norms.hpp:49</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5f4d13f11010d2d880c29ebf8e362342"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f4d13f11010d2d880c29ebf8e362342">&#9670;&nbsp;</a></span>setAlpha()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::setAlpha </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>alpha</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the alpha parameter </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">alpha</td><td>value to replace the current alpha with </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{ <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a5bf873dbce5167c97cf33ea5aad3d2eb">alpha_</a> = alpha; }</div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a5bf873dbce5167c97cf33ea5aad3d2eb"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a5bf873dbce5167c97cf33ea5aad3d2eb">pcl::MultiscaleFeaturePersistence::alpha_</a></div><div class="ttdeci">float alpha_</div><div class="ttdoc">Parameter that determines if a feature is to be considered unique or not</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.h:184</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6a5b892e4253a4ef49350d98d7f05ef3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a5b892e4253a4ef49350d98d7f05ef3">&#9670;&nbsp;</a></span>setDistanceMetric()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::setDistanceMetric </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#ga9d37f00989a9de11b48deb263649463c">NormType</a>&#160;</td>
          <td class="paramname"><em>distance_metric</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for setting the distance metric that will be used for computing the difference between feature vectors </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">distance_metric</td><td>the new distance metric chosen from the NormType enum </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;{ <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a9871addda0d0b88512e5df0b2f5bab8d">distance_metric_</a> = distance_metric; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a18007684230068263a72634de5b14578"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18007684230068263a72634de5b14578">&#9670;&nbsp;</a></span>setFeatureEstimator()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::setFeatureEstimator </td>
          <td>(</td>
          <td class="paramtype">FeatureEstimatorPtr&#160;</td>
          <td class="paramname"><em>feature_estimator</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setter method for the feature estimator </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">feature_estimator</td><td>pointer to the feature estimator instance that will be used </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>the feature estimator instance should already have the input data given beforehand and everything set, ready to be given the compute () command </dd></dl>
<div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;{ <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a7c0dfc200321784727cf0f92a237eb26">feature_estimator_</a> = feature_estimator; };</div>
</div><!-- fragment -->
</div>
</div>
<a id="abdd02a2d62fd46cb88be143d7f99a447"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdd02a2d62fd46cb88be143d7f99a447">&#9670;&nbsp;</a></span>setPointRepresentation()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::setPointRepresentation </td>
          <td>(</td>
          <td class="paramtype">const FeatureRepresentationConstPtr &amp;&#160;</td>
          <td class="paramname"><em>feature_representation</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the feature representation to use to convert features to k-D vectors. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">feature_representation</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_representation.html" title="PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensi...">PointRepresentation</a> </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;{ feature_representation_ = feature_representation; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8fb4b0b29389719ebdf3363e6c3067d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fb4b0b29389719ebdf3363e6c3067d7">&#9670;&nbsp;</a></span>setScalesVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointSource , typename PointFeature &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">pcl::MultiscaleFeaturePersistence</a>&lt; PointSource, PointFeature &gt;::setScalesVector </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>scale_values</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for setting the scale parameters for the algorithm </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">scale_values</td><td>vector of scales to determine the characteristic of each scaling step </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{ <a class="code" href="classpcl_1_1_multiscale_feature_persistence.html#a700a644c3268ec9ae619584134c43dcf">scale_values_</a> = scale_values; }</div>
<div class="ttc" id="aclasspcl_1_1_multiscale_feature_persistence_html_a700a644c3268ec9ae619584134c43dcf"><div class="ttname"><a href="classpcl_1_1_multiscale_feature_persistence.html#a700a644c3268ec9ae619584134c43dcf">pcl::MultiscaleFeaturePersistence::scale_values_</a></div><div class="ttdeci">std::vector&lt; float &gt; scale_values_</div><div class="ttdoc">The general parameter for determining each scale level</div><div class="ttdef"><b>Definition:</b> multiscale_feature_persistence.h:181</div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>features/include/pcl/features/<a class="el" href="multiscale__feature__persistence_8h_source.html">multiscale_feature_persistence.h</a></li>
<li>features/include/pcl/features/impl/<a class="el" href="multiscale__feature__persistence_8hpp_source.html">multiscale_feature_persistence.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_multiscale_feature_persistence.html">MultiscaleFeaturePersistence</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
